home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / prog_c / cuj0696.zip / DWYER.ZIP / GAP.TST / TSTMNSD.C < prev    next >
C/C++ Source or Header  |  1996-03-05  |  2KB  |  77 lines

  1. /* ============ */
  2. /* tstmnsd.c    */
  3. /* ============ */
  4. #include <defcodes.h>
  5. #include <math.h>
  6. #include <miscdefs.h>
  7. #include <gapdefs.h>
  8. #include <mconf.h>
  9. /* ==================================================================== */
  10. /*           Main Progrram to Test CalcGapMeanStdDev        */
  11. /* ==================================================================== */
  12.  
  13. #define    ACT(X)    #X
  14.  
  15. #define    NEED_NUMBER_GAPS(LO, HI) \
  16.     "Enter Number of Gaps at Issue ["\
  17.         ACT(LO)"-"ACT(HI)"]: "
  18. #define    NEED_LO_GAP_LIM(LO, HI) \
  19.     "Enter Lower Limit of Gap at Issue ["\
  20.         ">= "ACT(LO)", < "ACT(HI)"]: "
  21.  
  22. #define    MAX_GAPS    32767
  23. #define    MIN_GAPS      2
  24. #include <miscdefs.h>
  25. void
  26. main()
  27. {
  28.     AbortGracefully();
  29.     while (main)
  30.     {
  31.     int    NumGaps;
  32.     double    HiLimit, LoLimit, Mean, StdDev;
  33.  
  34.     for (;;)
  35.     {
  36.         GetInt(NEED_NUMBER_GAPS(MIN_GAPS, MAX_GAPS), &NumGaps);
  37.  
  38.         if (NumGaps >= MIN_GAPS && NumGaps <= MAX_GAPS)
  39.         {
  40.         break;
  41.         }
  42.         fprintf(stderr, "Incorrect Entry\n");
  43.     }
  44.     for (;;)
  45.     {
  46.         GetDbl(NEED_LO_GAP_LIM(0,1), &LoLimit);
  47.  
  48.         if (LoLimit >= 0 && LoLimit < 1)
  49.         {
  50.         break;
  51.         }
  52.         fprintf(stderr, "Incorrect Entry\n");
  53.     }
  54.  
  55.     for (;;)
  56.     {
  57.         char    Prompt[64];
  58.         sprintf(Prompt, "Enter Upper Limit of Gap at Issue "
  59.                 "[> %g, <= 1]: ", LoLimit);
  60.  
  61.         GetDbl(Prompt, &HiLimit);
  62.  
  63.         if (HiLimit > LoLimit && HiLimit <= 1)
  64.         {
  65.         break;
  66.         }
  67.         fprintf(stderr, "Incorrect Entry\n");
  68.     }
  69.     CalcGapMeanStdDev(NumGaps, HiLimit-LoLimit, &Mean, &StdDev);
  70.  
  71.     fprintf(stderr, "Number of Random Numbers That Must be examined:\n");
  72.     fprintf(stderr, "Number of Gaps = %d\nProbability = %g\n"
  73.             "Mean = %g Variates, StdDev = %g Variates\n",
  74.         NumGaps, HiLimit-LoLimit, ceil(Mean), ceil(StdDev));
  75.     }
  76. }
  77.